Skip to content

Restore package changelog + add dry_run validation flag#53

Merged
phantomcortex merged 2 commits into
mainfrom
fix/changelog-package-label
Jun 12, 2026
Merged

Restore package changelog + add dry_run validation flag#53
phantomcortex merged 2 commits into
mainfrom
fix/changelog-package-label

Conversation

@phantomcortex

Copy link
Copy Markdown
Owner

Summary

Two related build-pipeline fixes following the native-chunker migration (#51).

1. Restore the package changelog (970e6e4)

PR #51 replaced the hhd-dev/rechunk action with the native chunker
(rpm-ostree compose build-chunked-oci). The old action was the thing that
emitted the dev.hhd.rechunk.info OCI label — a JSON {package: version}
map that changelog.py reads (and only reads) to build the "Major Packages"
and "Package Changes" tables. The native chunker doesn't emit it, so both
tables went empty. Commits kept showing because they ride a different label
(org.opencontainers.image.revision), which is still baked in — hence the
"commits yes, packages no" symptom on recent releases.

Verified against the live registry: the label is present on latest.20260605
and earlier (~2350 packages), absent on latest.20260610/20260611 — the
first builds after the merge.

Fix: regenerate the label from the raw image's RPM database in the existing
"Apply OCI labels" step, matching the format the old action emitted
(%{VERSION}-%{RELEASE}). changelog.py is unchanged.

Note

The first post-merge changelog diffs a label-bearing build against the
previous label-less one, so the "Package Changes" table will list all
~2350 packages as added, once. It self-corrects on the following build.

2. Add dry_run validation flag (b0616e1)

New workflow_dispatch choice input to validate that the image builds — and
optionally rechunks — cleanly on a manual run, without publishing:

Choice Behaviour
off (default) Normal build + chunk + push + sign + release
build Stops after Build image (rootful)
chunk Runs through Run native rechunker, then stops

Both stop points skip push, signing, and the release job. Automated
push/schedule/PR runs are unaffected — the inputs context is empty for those
events.

Note

The dry_run selector only appears on the Actions tab once this is on main
(GitHub reads workflow_dispatch inputs from the default branch).

Testing

  • YAML parses; CI yamllint (line-length disabled) passes clean.
  • Embedded Python for the package-map generation tested locally (dedups
    multilib, skips malformed lines).
  • Full end-to-end behaviour can only be confirmed on the next :latest build.

🤖 Generated with Claude Code

phantomcortex and others added 2 commits June 11, 2026 17:42
PR #51 replaced the hhd-dev/rechunk action with the native chunker
(rpm-ostree compose build-chunked-oci), which does not emit the
dev.hhd.rechunk.info OCI label. changelog.py reads package data solely
from that label, so the "Major Packages" and "Package Changes" tables
went empty while commits (sourced from a different label) kept working.

Rebuild the label from the raw image's RPM database in the existing
"Apply OCI labels" step, matching the format the old action emitted.
changelog.py is unchanged.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
workflow_dispatch now exposes a dry_run choice (off/build/chunk) so a
manual run can verify the image builds — and optionally rechunks —
cleanly without publishing. 'build' stops after Build image (rootful),
'chunk' stops after Run native rechunker; both skip push, signing, and
the release job. Automated push/schedule builds are unaffected because
the inputs context is empty for those events.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@phantomcortex
phantomcortex merged commit 9731e82 into main Jun 12, 2026
3 checks passed
@phantomcortex
phantomcortex deleted the fix/changelog-package-label branch June 12, 2026 00:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant